package com.softoa.mapper;

import com.softoa.pojo.Department;
import org.apache.ibatis.annotations.Mapper;

/**
 * @author LinKun
 * @date 2022-6-20 23:18
 */
@Mapper
public interface DepartmentMapper {

    /**
     * 不用传递参数，直接查询所有的部门列表
     *
     * @return 返回一个部门列表
     */
    java.util.List<Department> departmentsList();

    /**
     * 多条件进行查询,传入一个有对应查询条件的部门,主要根据状态，名字，如果不存在就返回所有没删除的部门
     *
     * @param department 用于传递查询条件的部门
     * @return 返回值为符合要求的部门列表
     */
    java.util.List<Department> departmentListMultiple(Department department);

    /**
     * 批量修改删除状态操作
     *
     * @param depts 需要修改删除状态的部门编号数组
     * @return 返回是否修改成功1/0
     */
    int departmentDeleteMultiple(int[] depts);

    /**
     * 根据部门的id查询这个部门的所有信息,应用与一对多
     *
     * @param deptId 部门的编号id
     * @return 返回值 返回一个对象，可以查到这个对象所有的属性
     */
    Department departmentOneAndUser(int deptId);

    /**
     * 修改部门信息，传入一个部门对象
     *
     * @param department 传入的部门对象
     * @return 返回数值、1代表成功修改，0代表修改失败
     */
    int departmentUpdate(Department department);

    /**
     * 添加部门
     *
     * @param department 需要添加的对象
     * @return 是否添加成功1/0
     */
    int sysDeptInsert(Department department);

    /**
     * 通过部门id查询到该部门的信息。该方法用于一对多，员工查询所属部门的信息。
     *
     * @param deptId 该部门的id
     * @return 返回查询到的部门对象
     */
    Department departmentOne(int deptId);

}
